package com.pan.creational.single.obj;

/**
 * 静态内部类 实现单例
 * 可以做到懒加载和线程安全
 *
 * 这种方式是 Single2Object 类被装载了，instance 不一定被初始化。因为 SingletonHolder 类没有被主动使用，
 * 只有通过显式调用 getInstance 方法时，才会显式装载 SingletonHolder 类，从而实例化 instance。
 */
public class Single2Object {

    private final static class SingletonHolder {
        private static final Single2Object INSTANCE = new Single2Object();
    }

    private Single2Object(){}

    public void hello(){
        System.out.println("Hello World!");
    }


    public static Single2Object getInstance(){
        return SingletonHolder.INSTANCE;
    }

}
